from selenium.webdriver.common.by import By
from common.login import Login
import time


class logincase:
# 通过初始化方法得到用例对象
    def __init__(self):
        self.login = Login()

# 定义4个形式参数，分别是用例id，用户名，密码和预5期结果
    def logincase_execute(self,caseid,username,password,exp):
# 调用对应的方法，并取得返回值driver的对象
        driver = self.login.login_fast(username,password)
        time.sleep(3)

# 调用自定义元素出现判断的方法，如果出现查找验证点元素
        if self.is_element_present(driver,By.ID,'msg'):
            info = driver.find_element_by_id('msg').text
            if info == exp:
                print('%s pass' % caseid)
            else:
                print('%s fail,%s' % (caseid,info))

# 如果没有出现，查找另一个验证点元素
        else:
            info = driver.find_element_by_id('welcome').text
            if username in info:
                print(exp)
                if '登录成功' in exp:
                    print('%s pass' % caseid)
                else:
                    print('%s fail' % caseid)
            else:
                print('testcasefail,%s' % info)
        driver.quit()

# 定义一个类似于显示等待的方法，专门用于在短时间内判断元素是否出现
    def is_element_present(self,driver,how,what):
        try:
            driver.find_element(by=how,value=what)
        except Exception as e:
            return False
        return True